package Presentation;

import Metier.Objets.LotCuisson;
import Metier.Utils.DateUtils;

import javax.swing.table.DefaultTableModel;
import java.util.Observable;
import java.util.Observer;
import java.util.ResourceBundle;

public class TableCuissonsObs extends DefaultTableModel implements Observer {

    private final ResourceBundle cuissonBundle;

    public TableCuissonsObs(Onglet onglet) {
        this.cuissonBundle = ResourceBundle.getBundle("ressources/Cuisson/Cuisson", onglet.getFP().getLocale());
        this.addColumn(cuissonBundle.getString("cuisson.produit"));
        this.addColumn(cuissonBundle.getString("cuisson.nomlot"));
        this.addColumn(cuissonBundle.getString("cuisson.quantite"));
        this.addColumn(cuissonBundle.getString("cuisson.tempsrestant"));
        this.addColumn(cuissonBundle.getString("cuisson.jeter"));
        this.addColumn(cuissonBundle.getString("cuisson.id"));
    }

    @Override
    public boolean isCellEditable(int row, int column) {
        return column == 4;
    }

    @Override
    public void update(Observable o, Object arg) {
        this.setRowCount(0);
        Object[] rowdata = new Object[6];
        for (LotCuisson c : (java.util.List<LotCuisson>)arg) {
            rowdata[0] = c.getProduit().getNom();
            rowdata[1] = c.getNom();
            rowdata[2] = c.getQuantite();
            if (DateUtils.secondsLeft(c.getDate(), c.getProduit().getTempsCuisson()) < 1) {
                rowdata[3] = cuissonBundle.getString("cuisson.termine");
            } else {
                rowdata[3] = DateUtils.secondsToMinuteAndSeconds(DateUtils.secondsLeft(c.getDate(), c.getProduit().getTempsCuisson()));
            }
            rowdata[4] = cuissonBundle.getString("cuisson.jeter");
            rowdata[5] = c.getId();
            this.addRow(rowdata);
        }
    }
}
